
 1000  *SAVE S.URSCHEL'S COLOR PATTERN.TABLE         
 1010  *--------------------------------
 1020  *   RODS COLOR PATTERN
 1030  *   RE-WRITTEN BY BOB URSCHEL
 1040  *   USING THE QWERTY Q68 MC68000 MPU
 1050  *
 1060         .OR     $1000
 1070         MOVE.L  #$1100,A0  MOVE PROGRAM TO FAST MEMORY
 1080         MOVE.L  #$18600,A1
 1090         MOVE    #END-START,D1
 1100  XFER   MOVE.B  (A0)+,(A1)+
 1110         DBF     D1,XFER
 1120         JMP     $18600
 1130  *
 1140  *--------------------------------
 1150  *
 1160         .OR     $18600
 1170         .TA     $1100
 1180  START
 1190         TST.B   $C050     >GR
 1200         BSR     CLRSCR    CLEAR SCREEN
 1210  *--------------------------------
 1220  START.W
 1230         MOVE.B  #3,W      >FOR W = 3 TO 50
 1240  START.I
 1250         MOVEQ   #1,D7     >FOR I = 1 TO 19
 1260  START.J
 1270         MOVEQ   #0,D3     >FOR J = 0 TO 19
 1280  SET.K  MOVE    D7,D6     >K = I + J
 1290         ADD.B   D3,D6
 1300  *--------------------------------
 1310         MOVEQ   #0,D0     >COLOR = J*3/(I+3)+I*W/12
 1320         MOVE    D3,D0
 1330         MULU    #3,D0     J*3
 1340         MOVEQ   #0,D1
 1350         MOVE    D7,D1
 1360         ADDQ    #3,D1     I+3
 1370         DIVU    D1,D0     J*3/(I+3) --> D0
 1380         MOVE    D7,D1
 1390         MOVEQ   #0,D2
 1400         MOVE.B  W,D2
 1410         MULU    D1,D2     I*W --> D2
 1420         DIVU    #12,D2    D2 / 12
 1430         ADD     D0,D2
 1440         ANDI.B  #$F,D2
 1450         MOVE.B  D2,COLOR  SET COLOR
 1460  *
 1470  *
 1480  *  SUBTRACT I AND K FROM 40
 1490  *
 1500         MOVEQ   #40,D5
 1510         SUB     D7,D5     D5 = 40 - I
 1520         MOVEQ   #40,D4
 1530         SUB     D6,D4     D4 = 40 - K
 1540         MOVE    D7,D0     >PLOT I,K
 1550         MOVE    D6,D1
 1560         BSR.S   PLOT
 1570         MOVE    D6,D0     >PLOT K,I
 1580         MOVE    D7,D1
 1590         BSR.S   PLOT
 1600         MOVE    D5,D0     >PLOT 40-I,40-K
 1610         MOVE    D4,D1
 1620         BSR.S   PLOT
 1630         MOVE    D4,D0     >PLOT 40-K,40-I
 1640         MOVE    D5,D1
 1650         BSR.S   PLOT
 1660         MOVE    D6,D0     >PLOT K,40-I
 1670         MOVE    D5,D1
 1680         BSR.S   PLOT
 1690         MOVE    D5,D0     >PLOT 40-I,K
 1700         MOVE    D6,D1
 1710         BSR.S   PLOT
 1720         MOVE    D7,D0     >PLOT I,40-K
 1730         MOVE    D4,D1
 1740         BSR.S   PLOT
 1750         MOVE    D4,D0     >PLOT 40-K,I
 1760         MOVE    D7,D1
 1770         BSR.S   PLOT
 1780         ADDQ    #1,D3     >NEXT J
 1790         CMPI    #20,D3
 1800         BNE     SET.K
 1810         ADDQ    #1,D7     >NEXT I
 1820         CMPI    #20,D7
 1830         BNE     START.J
 1840         ADDQ.B  #1,W      >NEXT W
 1850         CMPI.B  #51,W
 1860         BEQ     START.W
 1870         BNE     START.I
 1880  *
 1890  *--------------------------------
 1900  CLRSCR CLR     D0
 1910         MOVE    #511,D1   # OF WORDS TO MOVE MINUS 1
 1920         MOVE    #$800,A0  ENDING SCREEN ADDR
 1930  .1     MOVE    D0,-(A0)
 1940         DBF     D1,.1
 1950         RTS
 1960  *--------------------------------
 1970  PLOT   LEA     SCREEN.ADDR,A0
 1980         MOVE.B  D1,D2     SAVE Y-COORD
 1990         ANDI.B  #$FE,D1   GET INDEX INTO TABLE
 2000         MOVE    0(A0,D1),A0
 2010         ADD     D0,A0     FINAL SCREEN ADDRESS
 2020         MOVE.B  #$F0,MASK
 2030         MOVE.B  COLOR,D1
 2040         LSR.B   #1,D2     ODD OR EVEN?
 2050         BCC.S   PLOT1     EVEN..
 2060         MOVE.B  #$F,MASK
 2070         LSL.B   #4,D1
 2080  PLOT1  MOVE.B  (A0),D2   GET ORIGINAL BYTE
 2090         AND.B   MASK,D2
 2100         OR.B    D1,D2     NEW COLOR
 2110         MOVE.B  D2,(A0)
 2120         RTS
 2130  *
 2140  *
 2150  SCREEN.ADDR
 2160         .DA     /$400
 2170         .DA     /$480
 2180         .DA     /$500
 2190         .DA     /$580
 2200         .DA     /$600
 2210         .DA     /$680
 2220         .DA     /$700
 2230         .DA     /$780
 2240         .DA     /$428
 2250         .DA     /$4A8
 2260         .DA     /$528
 2270         .DA     /$5A8
 2280         .DA     /$628
 2290         .DA     /$6A8
 2300         .DA     /$728
 2310         .DA     /$7A8
 2320         .DA     /$450
 2330         .DA     /$4D0
 2340         .DA     /$550
 2350         .DA     /$5D0
 2360         .DA     /$650
 2370         .DA     /$6D0
 2380         .DA     /$750
 2390         .DA     /$7D0
 2400  *
 2410  *--------------------------------
 2420  *      WORK AND STORAGE
 2430  *
 2440  MASK   .BS     1
 2450  COLOR  .BS     1
 2460  W      .BS     1
 2470  *
 2480  *--------------------------------
 2490  END
 2500         .OR     $800
 2510         .DA     $18800
 2520         .DA     $1000

